Distributed caching is a common characteristic of modern data networks, particularly where the network includes web servers. In a distributed cache system, data is stored on a variety of caching devices located at various points on a network. Once the data is stored, the network can later retrieve the data as requested. Distributed caching allows for more optimal use of available storage space and provides a dynamic system capable of compensating for failure of individual system components. Nonetheless, for distributed caching to be effective, the system must quickly identify the location of data stored therein.
A number of techniques have been developed for managing data in a distributed cache system to provide fast access to stored data. Still, most of these techniques are effective only when the caching devices are reliable. When cache failure occurs, data is lost. Certain techniques address this problem by replicating data from its source after a cache failure has occurred. However, in many applications stored data is transient and the original data is not available for replication.
Additionally, as new cache devices become available on a network, system speed may be increased by moving some data to the new cache device. Thus, an optimal method must be able to adapt to the addition of cache devices to the system as well.